package com.baizhi.service;

import com.baizhi.dto.request.TeacherDTO;
import com.baizhi.dto.response.StudentDTO;
import com.baizhi.entity.Teacher;
import com.baizhi.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author 16357
* @description 针对表【t_teacher】的数据库操作Service
* @createDate 2024-08-14 09:43:07
*/
public interface TeacherService extends IService<Teacher> {

    /**
     * 根据教师的用户ID注销教师账户
     * @param userId 教师的用户ID
     * @return 成功-true  失败-false
     */
    Boolean logOutTeacher(Integer userId);

    /**
     * 修改教师信息
     * @param user 封装了要修改的内容
     * @return 成功-true 失败-false
     */
    boolean updateTeacher(User user);

    /**
     * 根据学生ID和课程ID修改学生成绩
     * @param stuId 学生ID
     * @param courseId 课程ID
     * @param score 学生成绩
     * @return 成功-1 失败-0
     */
    Integer updateScoreByStuIdAndCourseId(Integer stuId,Integer courseId,Integer score);


    /**
     * 根据学生ID和课程ID删除 我的课程
     * @param stuId 学生的ID
     * @param courseId 学生的课程ID
     * @return 成功1   失败0
     */
    Integer deleteMyCourseByUserIdAndCourseId(Integer stuId,Integer courseId);

    /**
     *  根据课程ID查询学生信息
     * @param courseId 课程id
     * @return 返回满足条件的学生信息列表
     */
    List<StudentDTO> getStudentsByCourseId(Integer courseId);

    /**
     * 教师注册的方法
     * @param teacherDTO 封装的教师注册的参数
     */
    void teacherRegist(TeacherDTO teacherDTO);
}
